Real-time interaction during video viewing

ABSTRACT

Community interaction during video viewing is provided. A video hosting website includes videos available for viewing. Users establish lists of friends, who are other users of the video hosting site. When a user logs on, her presence is made known by an interaction engine to her friends that are also logged in to the site. The user&#39;s activities are tracked and her friends are notified of those activities. Tracked activities may include viewing a video, rating a video, commenting on a video, uploading a video to the site, and adding a new friend. Friends are notified of these activities in one embodiment through one or more user interface elements. A user can select a user interface element to discover which of her friends are also watching the same video at that time. A user watching a video can summon her online friends to the watch page to watch collaboratively.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.12/764,949 filed Apr. 22, 2010, which claims the benefit of U.S.Provisional Application No. 61/171,746 filed Apr. 22, 2009, each ofwhich is hereby incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field

The present invention is generally related to user interaction on anonline video hosting site. In particular, the present invention isdirected toward enabling communication and information sharing for acommunity of users of a video hosting site.

2. Description of the Related Art

Video hosting websites provide an opportunity for contributors to sharecontent with other members. This content typically includes items suchas home movies, projects and other user-generated content, and alsooften includes content licensed by various rights holders. By sharingtheir videos with site members, contributors gain feedback and exposure,facilitating the expression of ideas and exchange of dialogue.

Video hosting sites typically provide content viewers an opportunity toprovide responses to the content contributors. For example, viewers canoften rate the content, or leave comments about it, either publicly forall to see, or privately for the contributor. Some video hosting sitesallow users to assemble playlists of videos and to publicize theirplaylists for others to watch if they wish to.

SUMMARY

The various embodiments of the present invention enable communityinteraction during video viewing by providing a collaborative viewingenvironment for users. A video hosting website includes videos availablefor viewing, e.g., over the Internet or other network. Users of thevideo hosting site establish lists of friends, who are other users ofthe video hosting site. When a user logs on to the video hosting site,her presence is made known by an interaction engine to her friends thatare also logged in to the site. As the user undertakes variousactivities on the site, the activities are tracked and her friends arenotified of those activities. Tracked activities in one embodimentinclude viewing a video, rating a video, commenting on a video,uploading a video to the site, and adding a new friend. Friends arenotified of these activities in one embodiment through one or more userinterface elements, provided in one example in a region of some or allpages on the video hosting site. For example, a user browsing the website may receive a pop-up alert informing her that a friend has justsigned on, or has just rated a video. On any given watch page, a usercan select a user interface element to discover which of her friends arealso watching the same video at that time. A user watching a video inone embodiment can summon her online friends to the watch page so thatthe video can be watched by those friends. In one embodiment, theportion of the video currently being viewed by the summoning user isalso made known to the summoned friends, so that the viewing can occurin a simultaneous or near-simultaneous fashion; in alternativeembodiments, the summoned viewers simply start watching the video fromthe beginning.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of a system for providing communityinteraction during viewing of videos on a video hosting website 102 inaccordance with an embodiment of the present invention.

FIG. 2 illustrates an example of a video watch page in accordance withan embodiment of the present invention.

FIG. 3 illustrates an example of a user interface page including analert in accordance with an embodiment of the present invention.

FIG. 4A illustrates an example embodiment of the present invention inwhich users can chat while watching a video.

FIG. 4B illustrates an example of user interface elements informing afirst user of other users watching the same video as the first user inaccordance with an embodiment of the present invention.

FIG. 5 illustrates a first example of user interface elements fortracking friend activities in accordance with an embodiment of thepresent invention.

FIG. 6 is a flowchart illustrating a method for providing collaborativeviewing to users by a video hosting site in accordance with anembodiment of the present invention.

FIG. 7 illustrates a second example of user interface elements fortracking friend activities in accordance with an embodiment of thepresent invention.

FIG. 8 illustrates a third example of user interface elements fortracking friend activities in accordance with an embodiment of thepresent invention.

FIG. 9 illustrates an example of user interface elements for enablingusers to stop sharing the status of their online activities with otherusers and receiving the status of other users' online activitiesaccording to one embodiment of the present invention.

The figures depict preferred embodiments of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Real-time interaction during video viewing allows a user to see a listof the people online that the user is interested in, and to be able tocontemporaneously observe what those people are doing or have justrecently done on the video hosting site. The user can further interactwith her online friends by inviting them to watch a video as a group,and having a simultaneous chat with the other group members as theywatch the video.

FIG. 1 illustrates a video hosting website 102, which in the illustratedembodiment includes a web server 104, a interaction engine 110, anauthentication module 112, a data structure 124, a digital contentdatabase 114 and a user database 116. Many conventional features, suchas firewalls, load balancers, application servers, failover servers,site management tools and so forth are not shown so as not to obscurethe features of the system. One suitable website 102 for implementationof the system is the YOUTUBE™ website, found at www.youtube.com; othervideo hosting sites are known as well, and can be adapted to operateaccording to the teaching disclosed here. The term “web site” representsany computer system adapted to serve content using any internetworkingprotocols, and is not intended to be limited to content uploaded ordownloaded via the Internet or the HTTP protocol. In general, functionsdescribed in one embodiment as being performed on the server side canalso be performed on the client side in other embodiments ifappropriate. In addition, the functionality attributed to a particularcomponent can be performed by different or multiple components operatingtogether, as deemed appropriate by the implementer.

The server is implemented as server program executing on server-classcomputer comprising a CPU, memory, network interface, peripheralinterfaces, and other well known components. The computers themselves inone embodiment run an operating system such as LINUX, Microsoft Windows,Mac OS, etc., have generally high performance CPUs, 1 G or more ofmemory, and 100 G or more of disk storage. Of course, other types ofcomputers can be used, and as more powerful computers are developed inthe future, they can be configured in accordance with the teachingshere. The functionality implemented by any of the elements can beprovided from computer program products that are stored oncomputer-readable storage media (e.g., RAM, hard disk, oroptical/magnetic media).

A client device 120 executes a browser 122 and can connect to the webserver 104 to access digital content items via a network 100, which istypically the Internet, but can also be any network, including but notlimited to any combination of a LAN, a MAN, a WAN, a mobile, wired orwireless network, a private network, or a virtual private network. Whileonly three clients 120 a, 120 b, and 120 c and their respective browsers122 a, 122 b, and 122 c are shown, it is understood that very largenumbers (e.g., millions) of clients are supported and can be incommunication with the video hosting website 102 at any time. The client120 may include a variety of different computing devices. Some examplesof client devices 120 include personal computers, notebook computers,digital assistants, personal digital assistants, cellular phones, smartphones, mobile phones, or laptop computers.

The browser 122 can include any application that allows users of client120 to access video content over a network, and may form softwareavailable separately from client device 120, or may form a part of thedevice's software, as is the case with some mobile telephone devices.Some suitable separate applications are Microsoft Internet Explorer,Netscape Navigator, Mozilla Firefox, Apple Safari or any applicationadapted to allow access to web pages on the World Wide Web. The browser122 can also include a video player (e.g., Flash™ from Adobe Systems,Inc.), or any other player adapted for the video file formats used inthe video hosting website 102. A user can access a set of videos fromthe video hosting website 102 by browsing a catalog of videos,conducting searches on keywords, reviewing play lists or real-timeviewing data from friends, other users or the system administrator(e.g., collections of videos forming channels), or viewing videosassociated with particular user group (e.g., communities).

The content provider 118 provides digital content items to the videohosting website 102 via the network 100. While only one content provider118 is shown, it is understood that any number of content providers aresupported and can be in communication with the video hosting website 102at any time. Content providers 118 may also be users of the videohosting website 102, though they need not be.

The uploaded digital content items can include, for example, video,audio, or a combination of video and audio. Alternatively, a digitalcontent item may be a still image, such as a JPEG or GIF file or a textfile. For purposes of convenience and ease of description, we describeembodiments in which the digital content is video, though no limitationon the types of potential digital content items is intended by thisterminology.

The web server 104 is responsible for communication between the videohosting website 102 and client 122 and content provider 118. The webserver receives requests for videos and related information, andprovides videos and other requested information in return.

The ingest module 108 receives and processes uploaded videos from thecontent provider 118 for storage in the digital content database 114.This processing can include format conversion (transcoding),compression, metadata tagging, and other data processing.

The video serving module 106 receives and responds to requests forvideos and related information. Video serving module 106 includes logicfor searching the digital content database 114 in response to searchrequests, and for providing search results.

The digital content database 114 stores the videos available for viewingon the video hosting site 102. The digital content database 114 storesvideo content and associated metadata provided by their respectivecontent provider 118, or by the operator of video hosting website 102,or by third parties. The videos have metadata associated with each filesuch as a video ID, artist, video title, label, genre, time length, andoptionally geo-restrictions that can be used for data collection orcontent blocking on a geographic basis. Content is retrieved from thedigital content database 114 by video serving module 106 in response touser requests to view videos.

The user database 116 maintains a record of all registered users on thevideo hosting website 102. Each individual user of the video hostingwebsite 102 registers account information such as a login name,electronic mail (e-mail) address, and password with the video hostingwebsite 102. This account information is stored in the user database116. The user database 116 further maintains user information, e.g., inthe form of a profile, for users who log into the system. Userinformation is retrieved from the user database 116 in response to userrequests for user information, such as the profile. User database 116also stores, for each user, a list of the user's friends.

The authentication module 112 is responsible for granting user access tothe video hosting website 102. The authentication module 112 verifiesthe provided account information for each user before users are grantedfull access. Alternatively, users may access the video hosting website102 to perform some or all user functions without having to provideaccount information (e.g., log in) to the authentication module 112. Forexample, users only interested in viewing videos in the video hostingwebsite 102 are not required to have their account informationauthenticated, but in one embodiment will not be able to participate inreceiving notifications or in collaborative viewing with other users.

The interaction engine 110 facilitates collaborative viewing of videosand interaction between online users of video hosting site 102.Interaction engine 110 tracks which users are online and what videosthey are viewing, provides notifications to users about activities theirfriends are undertaking, and allows users watching the same video tocommunicate with one another.

In one embodiment, each signed-on user is represented by a processtracked by interaction engine 110. Interaction engine 110 tracks eventssuch as user sign-on, video viewing, and online friends. In oneembodiment, interaction engine 110 separately tracks friends who areboth online and active, and excludes those friends signed on and idle.Reference below to online friends is applicable to either embodiment atthe discretion of the implementer.

In one embodiment, each user registered with video hosting website 102is able to add other users of the site to a list of friends. The list offriends is stored in user database 116 in association with the user'saccount.

As noted, a user accesses video hosting website 102 through a browser122 executing on a client device 120. For the remainder of thisdisclosure, we refer generally to “client 120” as an entity performingvarious tasks or executing certain steps. From the context, however, itwill be understood that the reference is either to the device itself,the browser executing on the client, or the user controlling the browserand device, as appropriate.

In one embodiment, client 120 signs on to video hosting website 102,e.g., by accessing a URL associated with web server 104. The client 120provides user credentials, which are verified by authentication module112 against data in user database 116. Assuming the credentials arevalid, the client is then logged in.

FIG. 2 illustrates an example of a video watch page 200. A watch page200 is typically a web page (or other user interface element) thatincludes a video, typically embedded in a player on the page, as well asother information related to the video. For example, watch page 200includes a video 210, title 212, summary information 214 including thecontributor and a description of the video, and the like.

Watch page 200 also includes UI elements related to collaborativeviewing of the video. For example, watch page 200 includes a selectableindicator or button 202 indicating that the realtime sharing feature isactive. A user can select the indicator 202, for example, by clicking onthe button 202, and deactivate the realtime sharing feature. The watchpage 200 also includes a user interface button 204 for displaying a list(not shown) of users currently watching the video 210, and a button 206for displaying a list (not shown) of all of the user's friends that arecurrently online. In one embodiment, another UI element 208 indicatesthat the user has an alert. An alert is a system message for the userrelating to collaborative viewing, and may include, for example, anotification that one of the user's friends has come online, goneoffline, or taken action with respect to a video. Action with respect toa video can include starting to watch a video, commenting on a video,adding a video to the user's favorites, adding the video to a playlist,or rating the video. In one embodiment, when a user has one or morealerts, an icon on the UI element 208 changes to a different color—forexample, from green to red. Alternatively, the UI element may expand orpop up to automatically display the contents of the alert. Note that thecollaborative UI elements are not restricted to appearing only on watchpages, but may appear on any user interface page associated with videohosting site 102.

FIG. 3 illustrates an example of a UI page in which an alert has beengenerated for the user. The alert icon 302 is highlighted, and an alertdialog box 304 has popped up to indicate that one of the user's friendsis now online. In one embodiment, the popup notification includes anoption to disable future popup notifications. Note that as alluded toabove, the example of FIG. 3 is not a video watch page, but a differentpage associated with video hosting site 102—in this case, a user's mainpage that includes advertising, inbox statistics, and the like.

In one embodiment, such as the one illustrated in FIG. 4A, friendswatching the same video on the same website, or group of websitescontrolled by the same entity, can chat with one another. An audiencechat UI element 402 can be selected, and a pop-up window 404 appears,listing the names of the current viewers 406, and their comments 408. Aspace 410 is also provided for entering chat text. In one embodiment,all users viewing the watch page can participate in the chat. In analternative embodiment, only those users who are common friends (i.e.everyone in the chat is friends with everyone else in the chat) canparticipate. Other participation rules may be set by the implementer invarious embodiments, e.g., a friend of one participant can participatein the chat, even if she is not friends with any of the otherparticipants.

FIG. 4B illustrates another example of user interface element on watchpage 200 informing a first user of other users watching the same videoas the first user. In this example, button 206 informs the first userthat one of the first user's friends is online. The first user mayselect the button 206 to view information about the online friend.Moreover, FIG. 4B illustrates that button 202 and button 204 have beenselected indicating that the realtime sharing feature is enabled and theuser wants to see the list of other users watching the same video as theuser. In one embodiment, responsive to the selection of button 204, apop up window 422 displays the identification 424 of another user“slavegoogle” who is watching the same video as the first user. The user“slavegoogle” need not be a friend of the first user to be displayed onthe list of other users watching the same video. In one embodiment, thedisplayed list of users watching the same video only includes thefriends of the first user.

FIG. 5 illustrates UI elements for tracking friend activities inaccordance with an embodiment of the present invention. In theillustrated case, UI element 508 indicates that the user has one alert.Responsive to selection of the element 508, a popup window (not shown)displays information about the alert to the user. Additionally, UIelement 502 indicates that one friend is online. By selecting theelement (e.g., clicking on a button), a popup window 504 expands to showthe user ID of the online friend. Although only one online friend ispresent in the example of FIG. 5, multiple friends may be listed if theyare in fact online. In one embodiment, by selecting one of the listedfriends, that friend is sent an invitation to join the user in watchingthe video currently being watched by the user. In one embodiment, a userinterface element 506 allows a user to simultaneously invite all of heronline friends to come and watch the same video. In one embodiment, alisting for a friend can be expanded, for example by placing a mousepointer over the friend's name. FIG. 7 illustrates an example of UIelements displaying information about the user's friends.

FIG. 7 illustrates a popup notification 706 a that includes theidentification 702 a-b for the two online friends. In one embodiment,additional information about the friend can also be displayed withfriends' identification in the popup notification 706 a. For example, inone embodiment, the friends' identification 702 a-b is accompanied bythe name or identification 704 a-b of the content the friends arecurrently accessing. In one embodiment, the friends' identification 702a-b is also accompanied by the friends' latest online activity 708 a-b.For example, FIG. 7 illustrates that the user's online friend “wildcrdj”702 a favorited content named “They Might Be Giants: Meet the Elements”and the user's online friend “softplus” 702 b favorited content named“We Love xkcd.”

FIG. 8 illustrates another example of popup notification 706 b. In thisexample, none of the user's friends are online and therefore the popupnotification 706 b does not display any of the user's friends as online.Moreover, this embodiment of the popup notification 706 b includes anoption 802 to add friends. The user can select this option to add onlinefriends. Like the example of FIG. 7, the popup notification 706 b inFIG. 8 also displays the user's friends' latest online activity 708 c-feven though the friends are not online.

As described above, FIGS. 2-5 and 7-9 illustrate examples of the userinterface elements available to the user for sharing her onlineactivities with other users. The user may also choose not to share heronline activities. Referring to FIG. 9, a user can choose to turn offthe realtime sharing with her friends by selecting button 202. After theuser selects button 202 the realtime sharing features switches from its“on” state to “off” state. Accordingly, the user's friends or otherwebsite users cannot see the user's online activity anymore. In oneembodiment, the user cannot see the online activities of other userseither when the realtime sharing feature is turned off. In anotherembodiment, the user enters an invisible mode by selecting an invisiblebutton (not shown) while the realtime sharing feature is turned on. Inthis embodiment, the user's online activities are not visible to otherusers but the user can see the online activities of other users.

FIG. 6 is a flowchart illustrating a method for providing collaborativeviewing to users by a video hosting site in accordance with anembodiment of the present invention. Initially, video hosting website102 receives 602, e.g., via web server 204, a login request from aclient 120. Authentication module 112 validates 604 the user'scredentials, and logs the user in to the video hosting site. Interactionengine 110 then updates the user's presence status as online andavailable. In one embodiment, users are by default set to a status ofavailable when they log in to hosting site 102. In alternativeembodiments, users may set a default preference of available, busy,invisible, or the like. Interaction engine 110 then determines 606 alist of the user's friends, for example by referring to user database116, and transmits 608 a list of online friends and their presenceinformation to client 120. In one embodiment, information about onlinefriends is transmitted as a packet listening all online friends. In analternative embodiment, an online friend notification is receivedindividual from a particular process representing each online friend.Similarly, for each online friend, interaction engine 110 notifies 610that friend that the user has logged on to the site 102, for example byproviding a pop-up notification, or adjusting a user interface elementsuch as UI element 206 (FIG. 2). In one embodiment, interaction engine110 attempts to contact a process for each of the user's friends. Ifthat friend is online, a process exists and is informed of the user'spresence. Next, interaction engine 110 determines 612 whether there areany incoming alerts for the user. If so, then the alerts are displayed614 to the client 120, e.g., as a notification 508 (FIG. 5).

As the user navigates the video hosting site 102 and undertakes variousactivities, such as watching a video, commenting on a video, adding afriend, rating a video, adding a video to a playlist, inviting an onlinefriend to a video watch page etc., interaction engine 110 detects 616these activities and generates 618 alerts that are sent to the user'sonline friends. In one embodiment, alerts are sent using inter-processcommunication, such as, for example, from one user process to another,or via a video process intermediary, etc. Interaction engine alsocontinues to receive incoming alerts from the user's friends as they aregenerated by the friends' activities.

As noted, in one embodiment each user is represented internally as aserver process, and inter-process communication allows messages to bepassed from one process to another about users' availability andactions. Similarly, each video is represented by a process in oneembodiment, and each video process tracks each user currently watchingthat video. In alternative embodiments, other implementations can beused to track user activities and online presence, such as storing useractions in user database 116.

In one embodiment, a stateful connection between a client 120 and videohosting website 102 is maintained using an RTMP (real-time messagingprotocol) connection. Alternatively, an HTTP or other type of connectioncan be used.

Collaborative viewing of videos as described here additionally serves afunction of an informal video recommendation mechanism. Interactionengine 110 enables a user to summon her friends to a video she iscurrently watching, thus implying a recommendation of that video. Inaddition, by viewing the recent history of an online friend, users cansee which videos their friends have watched very recently, providing anadditional set of implied recommendations.

As noted, in some embodiments any user of the video hosting site 102 canbe followed by a user, not just a predefined list of friends. In eithercase, ad-hoc groups of users who happen to be online simultaneously canform and explore the contents of video hosting site 102 together.Because each user in the group can see what others in the group aredoing in real time, each can follow others from video to video andexperience the site together.

The present invention has been described in particular detail withrespect to a limited number of embodiments. Those of skill in the artwill appreciate that the invention may additionally be practiced inother embodiments.

Within this written description, the particular naming of thecomponents, capitalization of terms, the attributes, data structures, orany other programming or structural aspect is not mandatory orsignificant, and the mechanisms that implement the invention or itsfeatures may have different names, formats, or protocols. Further, thesystem may be implemented via a combination of hardware and software, asdescribed, or entirely in hardware elements. Also, the particulardivision of functionality between the various system componentsdescribed herein is merely exemplary, and not mandatory; functionsperformed by a single system component may instead be performed bymultiple components, and functions performed by multiple components mayinstead be performed by a single component. For example, the particularfunctions of interaction engine 110, video serving module 106, and soforth may be provided in many or one module.

Some portions of the above description present the feature of thepresent invention in terms of algorithms and symbolic representations ofoperations on information. These algorithmic descriptions andrepresentations are the means used by those skilled in the art to mosteffectively convey the substance of their work to others skilled in theart. These operations, while described functionally or logically, areunderstood to be implemented by computer programs. Furthermore, it hasalso proven convenient at times, to refer to these arrangements ofoperations as modules or code devices, without loss of generality.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the present discussion,it is appreciated that throughout the description, discussions utilizingterms such as “selecting” or “computing” or “determining” or the like,refer to the action and processes of a computer system, or similarelectronic computing device, that manipulates and transforms datarepresented as physical (electronic) quantities within the computersystem memories or registers or other such information storage,transmission or display devices.

Certain aspects of the present invention include process steps andinstructions described herein in the form of an algorithm. It should benoted that the process steps and instructions of the present inventioncould be embodied in software, firmware or hardware, and when embodiedin software, could be downloaded to reside on and be operated fromdifferent platforms used by real time network operating systems.

The present invention also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may comprise a general-purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but is not limited to, any type ofdisk including floppy disks, optical disks, CD-ROMs, magnetic-opticaldisks, read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, application specific integratedcircuits (ASICs), or any type of media suitable for storing electronicinstructions, and each coupled to a computer system bus. Furthermore,the computers referred to in the specification may include a singleprocessor or may be architectures employing multiple processor designsfor increased computing capability.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general-purposesystems may also be used with programs in accordance with the teachingsherein, or it may prove convenient to construct more specializedapparatus to perform the required method steps. The required structurefor a variety of these systems will appear from the description above.In addition, the present invention is not described with reference toany particular programming language. It is appreciated that a variety ofprogramming languages may be used to implement the teachings of thepresent invention as described herein, and any references to specificlanguages are provided for disclosure of enablement and best mode of thepresent invention.

Finally, it should be noted that the language used in the specificationhas been principally selected for readability and instructionalpurposes, and may not have been selected to delineate or circumscribethe inventive subject matter. Accordingly, the disclosure of the presentinvention is intended to be illustrative, but not limiting, of the scopeof the invention.

What is claimed is:
 1. A method for viewing digital video content on a video hosting site, the method comprising: sending, by a server, digital video content over a network to a first client device for display on the first client device; receiving, by the server, a request from the first client device to determine other viewers watching the digital video content; responsive to receiving the request, determining, by the server, a second client device to which the digital video content is also being sent, whereby the digital video content is displayed on the second client device asynchronously from display of the digital video content on the first client device of the first viewer; and providing, by the server, over the network to the first client device an indication that the second client device is displaying the digital content.
 2. The method of claim 1, further comprising: providing, by the server, over the network to the second client device, an indication that the first client device is displaying the digital content.
 3. The method of claim 1, wherein each client device is represented within the server with an executing process, and wherein automatically determining the second client device comprises the server contacting the executing process representing the second client device.
 4. The method of claim 1, wherein the digital video content is represented by a process and the process tracks client devices currently watching the digital video content, wherein automatically determining a second client device comprises identifying a client device tracked by the process.
 5. A computer program product for providing real-time collaborative viewing of digital video content on a video hosting site, the computer program product stored on a non-transitory computer-readable medium and including computer code adapted when loaded into memory to cause a processor to carry out the steps of: sending digital video content over a network to a first client device for display on the first client device; receiving a request from the first client device to determine other viewers watching the digital video content; responsive to receiving the request, automatically determining a second client device to which the digital video content is also being sent, whereby the digital video content is displayed on the second client device asynchronously from display of the digital video content on the first client device of the first viewer; and providing over the network to the first client device an indication that the second client device is displaying the digital content.
 6. The computer program product of claim 5, where in the computer code is further adapted to cause the processor to carry out the step of: providing, over the network to the second client device, an indication that the first client device is displaying the digital content.
 7. The computer program product of claim 5, wherein each client device is represented by an executing process, and wherein automatically determining the second client device comprises contacting the executing process representing the second client device.
 8. The computer program product of claim 5, wherein the digital video content is represented by a process and the process tracks client devices currently watching the digital video content, wherein automatically determining a second client device comprises identifying a client device tracked by the process.
 9. A computer program product for collaborative viewing of digital video content on a video hosting site, the computer program product comprising a non-transitory computer-readable medium including instructions adapted for execution on a processor on a client device, the instructions causing the processor to carry out the steps of: transmitting a request from a requestor to the video hosting site to view a video, the video provided to the client device from the video hosting site over a network, wherein the requestor is logged in to the video hosting site from the client device; receiving, from the requestor, a selection of at least one user from a list of users contemporaneously logged in, with the requestor, to the video hosting site; transmitting an invite to the selected user to view the video; transmitting a request to determine other viewers viewing the video; and responsive to transmitting the request, receiving an indication that the selected viewer is viewing the video, the video displayable to the selected viewer asynchronously from the video displayed to the requestor.
 10. The computer program product of claim 9 wherein the video is embedded in a web page displayed on a computer of the requester.
 11. The computer program product of claim 10 wherein the displayed web page includes a list of users contemporaneously viewing the video.
 12. The computer program product of claim 11 wherein each of the users in the list of users is associated with a set of friends identified to the video hosting site by the requester.
 13. The computer program product of claim 11 wherein the displayed web page includes a chat interface enabling each of the list of users contemporaneously viewing the video to chat with the other users as a group.
 14. The computer program product of claim 10 wherein a user interface element of the web page displays an alert, the alert indicating that a user has logged in to the video hosting site.
 15. The computer program product of claim 14 wherein the alert identifies a user that is associated with a set of friends identified to the video hosting site by the requester.
 16. A system for collaborative viewing of digital video content on a video hosting site, comprising: a processor configured to execute instructions; a non-transitory computer-readable memory storing instructions executable by the processor and causing the processor to carry out the steps of: transmitting a request from a requestor to the video hosting site to view a video, the video provided to the client device from the video hosting site over a network, wherein the requestor is logged in to the video hosting site from the client device; receiving, from the requestor, a selection of at least one user from a list of users contemporaneously logged in, with the requestor, to the video hosting site; transmitting an invite to the selected user to view the video; transmitting a request to determine other viewers viewing the video; and responsive to transmitting the request, receiving an indication that the selected viewer is viewing the video, the video displayable to the selected viewer asynchronously from the video displayed to the requestor.
 17. The system of claim 16 wherein the video is embedded in a web page displayed on a computer of the requester.
 18. The system of claim 17 wherein the displayed web page includes a list of users contemporaneously viewing the video.
 19. The system of claim 18 wherein each of the users in the list of users is associated with a set of friends identified to the video hosting site by the requester.
 20. The system of claim 18 wherein the displayed web page includes a chat interface enabling each of the list of users contemporaneously viewing the video to chat with the other users as a group.
 21. The system of claim 17 wherein a user interface element of the web page displays an alert, the alert indicating that a user has logged in to the video hosting site.
 22. The system of claim 21 wherein the alert identifies a user that is associated with a set of friends identified to the video hosting site by the requester. 